package com.sojson.project.sys.menu.entity.bo;

import java.util.List;

import com.alibaba.fastjson.annotation.JSONType;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.sojson.base.impl.Base;
import com.sojson.config.converter.fastjson.NullNoOutPropertyFilter;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 路由配置信息
 * 
 * @author liu
 * @date 2021-05-18
 */
@Data
@ApiModel("路由配置信息")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JSONType(serialzeFilters = NullNoOutPropertyFilter.class)
public class RouterBo extends Base {

    /** 上级菜单ID */
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("上级菜单ID")
    private String parentId;
    /** 路由名字 */
    @ApiModelProperty("路由名字")
    private String name;
    /** 请求地址 */
    @ApiModelProperty("请求地址")
    private String path;
    /** 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 */
    @ApiModelProperty("是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现")
    private boolean hidden;
    /** 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 */
    @ApiModelProperty("重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击")
    private String redirect;
    /** 路由地址 */
    @ApiModelProperty("路由地址")
    private String component;
    /** 当你一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式--如组件页面 */
    @ApiModelProperty("当你一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式--如组件页面")
    private Boolean alwaysShow;
    /** 其他元素 */
    @ApiModelProperty("其他元素")
    private MetaBo meta;
    /** 子路由 */
    @ApiModelProperty("子路由")
    private List<RouterBo> children;

}